"""
添加一个神经层
"""

import tensorflow.compat.v1 as tf

# 在Tensorflow 2.0 中，eager execution 是默认开启的。所以，需要先关闭eager execution
tf.compat.v1.disable_eager_execution()


def add_layer(inputs, in_size, out_size, activation_func=None):
    # 创建一个参数，值为一个由随机数构成的 行为 in_size，列为out_size 的矩阵
    Weights = tf.Variable(tf.random_normal([in_size, out_size]))
    # 创建一个 1*out_size shape的矩阵，然后 + 0.1
    biases = tf.Variable(tf.zeros([1, out_size]) + 0.1)
    # 矩阵乘 input Weight 然后 + biases
    Wx_plus_b = tf.matmul(inputs, Weights) + biases

    # 如果不存在激活函数，输出线性结果
    if activation_func is None:
        outputs = Wx_plus_b
    else:
        # 否则，激活线性函数
        outputs = activation_func(Wx_plus_b)
    return outputs
